home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / demosrc / timesrc / slbytet.rt < prev    next >
Encoding:
Text File  |  1994-02-15  |  1.1 KB  |  40 lines

  1.  
  2. public  _slidebytetbl
  3.  
  4. ;═════════════════════════════════════════════════════════════════════════════
  5. slidebytetbl    db      0,7fh dup(-1), 80h dup(1)
  6.                 db      0,-1,7eh dup(-2), 7fh dup(2),1
  7.  
  8. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  9. ; Slide a block of bytes closer to another block in value
  10. ; In:
  11. ;   AL - max value to slide by minus 1 (actually, table index)
  12. ;   ECX - number of bytes to slide
  13. ;   ESI -> block to slide towards
  14. ;   EDI -> block to slide
  15. ; Out:
  16. ;   CF=1 - no changes made
  17. ;   CF=0 - at least one change made
  18. ;   EAX,EBX,ECX,EDX,ESI,EDI - ?
  19. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  20. _slidebytetbl:
  21.         xor ebx,ebx
  22.         mov bh,al
  23.         xor dh,dh
  24.         add ebx,offset slidebytetbl
  25.         xor eax,eax
  26. slidebytetbll0:
  27.         mov al,[edi]
  28.         mov dl,al
  29.         sub al,[esi]
  30.         or dh,al
  31.         add dl,[ebx+eax]
  32.         mov [edi],dl
  33.         inc edi
  34.         inc esi
  35.         dec ecx
  36.         jnz slidebytetbll0
  37.         cmp dh,1
  38.         ret
  39.  
  40.